package com.sh.rbac.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.rbac.domain.dto.param.ParamQueryDTO;
import com.sh.rbac.domain.dto.param.ParamSaveDTO;
import com.sh.rbac.domain.dto.param.ParamUpdateDTO;
import com.sh.rbac.domain.entity.Param;

/**
 * @author wb
 * @since 2025-02-11
 */
public interface ParamService extends IService<Param> {

    /**
     * 分页查询参数列表
     *
     * @param current       当前页
     * @param limit         每页显示条数
     * @param paramQueryDTO 查询条件
     * @return 分页查询结果
     */
    Page<Param> getPage(Long current, Long limit, ParamQueryDTO paramQueryDTO);

    /**
     * 保存参数
     *
     * @param paramSaveDTO 参数保存对象
     * @return 是否保存成功
     */
    Boolean save(ParamSaveDTO paramSaveDTO);


    /**
     * 更新参数
     *
     * @param paramUpdateDTO 参数更新对象
     * @return 是否更新成功
     */
    Boolean updateById(ParamUpdateDTO paramUpdateDTO);


    /**
     * 更新参数状态
     *
     * @param id     参数ID
     * @param status 参数状态
     * @return 是否更新成功
     */
    Boolean updateStatus(Long id, Integer status);


    /**
     * 根据参数编码获取参数值
     *
     * @param code 参数编码
     * @return 参数值
     */
    String getParamValueByCode(String code);
}
